🔐 🛡️ 🔍
Atelier de Professionnalisation — Année 2 · BTS SIO SISR
PingCastle — Audit de sécurité Active Directory
Cybersécurité · Active Directory · GPO · PowerShell · Score 45 → 20/100
45
Score initial / 100
20
Score final / 100
8
Failles corrigées
-25
Points de risque gagnés
📄
Compte-rendu professionnel
AP PingCastle — Audit Active Directory
⬇  Télécharger
Contexte de l'atelier

Dans le cadre du BTS SIO SISR — 2ème année, cet atelier de professionnalisation consiste à auditer un domaine Active Directory à l'aide de l'outil PingCastle (Netwrix). Le contexte simulé est celui d'un prestataire IT mandaté par un client qui s'inquiète de la sécurité de son infrastructure Windows.

PingCastle génère un score de risque de 0 à 100 — plus le score est bas, meilleure est la sécurité du domaine. Il analyse quatre indicateurs : Stale Object (objets obsolètes), Privileged Accounts (comptes à privilèges), Trusts (relations de confiance inter-domaines) et Anomalies (configurations risquées).

L'objectif est d'identifier les failles majeures, de les comprendre, de les corriger, et de produire ce compte-rendu professionnel documentant la démarche complète.

Audit initial — Score 45/100

Au premier audit, le domaine blaize.lmd présente un score de risque de 45/100. Ce score indique une sécurité mitigée avec plusieurs axes d'amélioration prioritaires.

Stale Object 31/100

11 règles correspondantes · Comptes utilisateurs et ordinateurs obsolètes ou mal suivis, pouvant servir de porte d'entrée à un attaquant.

Privileged Accounts 40/100

4 règles correspondantes · Comptes administrateurs insuffisamment protégés, exposés aux attaques de type Pass-the-Hash et usurpation d'identité.

Trusts 0/100

0 règle · Aucune relation de confiance dangereuse entre domaines. Ce point est parfaitement sécurisé.

Anomalies 45/100

13 règles correspondantes · Configurations risquées ou incorrectes (protocoles anciens, mots de passe faibles, NetBIOS actif…).

Failles identifiées et remédiées
1
Administrateurs non inclus dans les utilisateurs protégés
🔴 Critique · Privileged Accounts

Deux comptes administrateurs du domaine ne sont pas membres du groupe « Protected Users ». Sans cette protection, ils utilisent des protocoles d'authentification faibles (NTLM, Kerberos avec algorithmes vulnérables), leurs mots de passe peuvent être mis en cache sur les postes clients, et ils sont exposés aux attaques Pass-the-Hash et Pass-the-Ticket. En cas de compromission, l'attaquant peut se déplacer librement dans le réseau.

Ajout des comptes Adminbis, Administrateur et Client2 dans le groupe Protected Users. Une fois membres, les comptes ne peuvent plus utiliser NTLM ou Kerberos avec des algorithmes vulnérables, et les mots de passe ne sont plus mis en cache sur les postes clients.

  • Ouvrir AD Users and Computers → Rechercher le groupe Protected Users
  • Onglet Membres → ajouter Adminbis, Administrateur et Client2
  • Vérifier que les membres apparaissent bien dans la liste
✅ Privileged Accounts : 40 → 20/100
2
LAPS (Local Administrator Password Solution) non installé
🟠 Élevé · Anomalies

Le mot de passe administrateur local est identique sur tous les postes ou rarement modifié. Si un attaquant récupère ce mot de passe sur un seul poste, il peut l'utiliser sur tout le parc — les attaques Pass-the-Hash deviennent triviales.

LAPS génère automatiquement un mot de passe unique par machine, stocké dans Active Directory, avec rotation automatique. La GPO a été configurée avec le répertoire de sauvegarde sur Active Directory. Un onglet LAPS apparaît dans les propriétés de chaque objet ordinateur.

  • Créer une GPO LAPS → activer « Configuration du répertoire de sauvegarde » → Active Directory
  • Configurer la complexité et la durée de vie des mots de passe
  • Vérifier via PowerShell : Get-LapsADPassword -Identity CLIENT1-W11 -AsPlainText
✅ Anomalies : 45 → 30/100
3
Politique de mots de passe insuffisante
🟠 Élevé · Anomalies

La politique acceptait des mots de passe de moins de 8 caractères sans exigences de complexité. Ces mots de passe sont facilement cassables par force brute ou via des dictionnaires. Le CERT-FR et l'ANSSI recommandent un minimum de 12 caractères avec complexité.

Modification de la Default Domain Policy : longueur minimale à 12 caractères, complexité activée, durée de vie maximale à 60 jours, historique mémorisant les 24 anciens mots de passe.

  • GPO Editor → Default Domain Policy → Stratégie de mot de passe
  • Définir : Longueur min. = 12, Complexité = Activé, Durée max = 60 jours, Historique = 24
  • Appliquer et gpupdate /force
✅ Anomalies : 30 → 20/100
4
Utilisation des protocoles NTLMv1 et LM
🔴 Critique · Anomalies

NTLMv1 et LM sont des protocoles obsolètes. Leurs hash peuvent être interceptés (Man-in-the-Middle), relayés (NTLM relay) ou cassés par force brute. Ils rendent le réseau vulnérable aux attaques d'usurpation d'identité et d'escalade de privilèges.

Forcer l'utilisation de NTLMv2 via la Default Domain Controllers Policy : paramètre « Sécurité réseau : niveau d'authentification LAN Manager » défini sur « Envoyer uniquement une réponse NTLMv2. Refuser LM et NTLM ».

  • GPO Editor → Default Domain Controllers Policy → Options de sécurité
  • Paramètre « Sécurité réseau : niveau d'authentification LAN Manager »
  • Définir : Envoyer uniquement NTLMv2. Refuser LM et NTLM
✅ Stale Object : 31 → 16/100
5
Paramètre « non déléguable » non activé sur les comptes admins
🟠 Élevé · Privileged Accounts

Les comptes administrateurs n'avaient pas le drapeau « Ce compte est sensible et ne peut pas être délégué » activé. Un service ou une machine peut alors emprunter leur identité via la délégation Kerberos, permettant à un attaquant de créer des comptes, modifier des droits ou accéder à des données confidentielles.

Dans les propriétés de chaque compte administrateur, onglet Compte, activation de la case « Ce compte est sensible et ne peut pas être délégué ». La commande Get-ADGroupMember -Identity "Administrators" a permis d'identifier tous les comptes concernés.

  • Get-ADGroupMember -Identity "Administrators" pour lister les admins
  • Propriétés du compte → Onglet Compte → cocher « Ce compte est sensible et ne peut pas être délégué »
  • Répéter pour tous les comptes Domain Admins et Enterprise Admins
✅ Privileged Accounts : 20 → 10/100
6
Groupe Schema Admins contenant des comptes actifs
🟠 Élevé · Privileged Accounts

Le groupe Schema Admins permet de modifier le schéma Active Directory — modification qui impacte tout le domaine et est irréversible. Laisser des comptes dans ce groupe en permanence augmente considérablement le risque d'incident ou de sabotage.

Suppression du compte Administrator du groupe Schema Admins pour que le groupe soit vide en situation normale. L'ajout temporaire d'un compte ne se fait que lors d'une modification planifiée du schéma, avec restitution immédiate des droits.

  • AD Users and Computers → Rechercher Schema Admins
  • Onglet Membres → sélectionner Administrator → Remove
  • Vérifier que la liste des membres est vide
✅ Privileged Accounts : 10/100
7
NetBIOS activé sur les interfaces réseau
🟡 Moyen · Anomalies

NetBIOS est un ancien protocole non chiffré qui facilite les attaques de spoofing LLMNR/NetBIOS-NS et le relayage NTLM. Un attaquant positionné sur le réseau peut intercepter des requêtes et récupérer des identifiants. Ce protocole n'est plus nécessaire dans un environnement AD moderne.

Script PowerShell déployé par GPO de démarrage : Get-WmiObject -Class Win32-NetworkAdapterConfiguration | Where-Object { $_.IPEnabled } | ForEach-Object { $_.SetTcpipNetbios(2) }. Désactivation également possible manuellement via Propriétés Ethernet → IPv4 → Avancé → WINS.

  • Créer disable_netbios.ps1 avec la commande WMI ci-dessus
  • Créer une GPO → Configuration ordinateur → Scripts (Démarrage) → ajouter le .ps1 via chemin réseau partagé
  • Lier la GPO aux Domain Controllers et à l'UO PC
✅ Anomalies : 25 → 20/100
8
Fichiers scripts s'exécutant dans leur moteur natif
🟡 Moyen · Anomalies

Les extensions .js, .vbs, .wsf s'ouvrent par défaut dans leur moteur d'exécution (WScript, CScript). Un script malveillant reçu par phishing ou téléchargé peut s'exécuter automatiquement, facilitant les infections par ransomware ou le vol de données.

Script PowerShell déployé par GPO qui modifie la clé de registre HKCU:\...\FileExts\$ext\UserChoice pour chaque extension ciblée (.js, .jse, .vbs, .vbe, .vb, .wsh, .wsf), en définissant Progid = Applications\notepad.exe.

  • Créer le script PowerShell ciblant les 7 extensions à risque
  • Déployer via GPO → Préférences de registre ou Script de démarrage (HKCU)
  • Vérification : double-clic sur un .js → doit ouvrir le Bloc-notes
✅ Anomalies : 20/100 — correction finale
Audit final — Score 20/100

Après correction des 8 failles, le score de risque est passé de 45/100 à 20/100, soit une amélioration de 25 points.

Indicateur Score Avant Score Après Évolution Principales corrections
Stale Object 31 / 100 16 / 100 ▼ -15 pts Suppression comptes inactifs · NTLMv2 forcé
Privileged Accounts 40 / 100 10 / 100 ▼ -30 pts Protected Users · Non-déléguable · Schema Admins vidé
Trusts 0 / 100 0 / 100 = stable Aucune relation de confiance — score parfait
Anomalies 45 / 100 20 / 100 ▼ -25 pts LAPS · Politique MDP · NetBIOS · Scripts
Score Global 45 / 100 20 / 100 ▼ -25 pts 8 failles corrigées
Outils & technologies utilisés
PingCastle / Netwrix Active Directory Group Policy (GPO) PowerShell LAPS Protected Users NTLMv2 Kerberos Windows Server Registre Windows